package BehaviorModel.templateModel;

public abstract class SoybeanAbstract {

    /**
     * 功能描述: final 修饰模板方法,制定方法的调用顺序 ,确认只有这一个模板方法,执行顺序不会被重写
     */
    public final void make(){
        select();
        clear();
        grinding();
        boil();
        cooling();
    }


    /**
     * 功能描述: 选择制作豆浆的材料
     */
    protected abstract void select();


    /**
     * 功能描述: 清洗材料
     */
    protected void clear(){
        System.out.println("清理材料");
    }

    /**
     * 功能描述: 研磨豆浆
     */
    protected void grinding(){
        System.out.println(" grinding 研磨");
    }

    /**
     * 功能描述: 煮
     */
    protected void boil(){
        System.out.println("boil 煮");
    }


    /**
     * 功能描述: 冷却
     */
    protected void cooling(){
        System.out.println("冷却");
    }
}
